package Tydzien4;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Collections;


public class Biblioteka implements Serializable, Cloneable {
	private static final long serialVersionUID = -2943641799389746566L;
	
	private ArrayList<Ksiazka> biblioteka = new ArrayList<Ksiazka>();
	
	public void appendElement(Ksiazka ksiazka)
	{
		biblioteka.add(ksiazka);
	}
	
	public void removeElement(int i)
	{
		biblioteka.remove(i);
	}
	
	public Ksiazka getElement(int i)
	{
		return biblioteka.get(i);	
	}
	
	public void sort()
	{
		Collections.sort(biblioteka);
	}
	
	public void sort(Comparator<Ksiazka> c)
	{
		Collections.sort(biblioteka, c);
	}
	
	public int size()
	{
		return biblioteka.size();
	}
	
	public String toString()
	{
		return biblioteka.toString();
	}
	
	public Biblioteka kopiuj() {
		try { return (Biblioteka) this.clone();
		}
		catch (CloneNotSupportedException e) {
			return null;
		}
	}
	
	@Override
	public boolean equals(Object obj) {
		if(obj instanceof Biblioteka)
		{
			Biblioteka b = (Biblioteka) obj;
			return biblioteka.equals(b.biblioteka);
		}
		else
		{
			return super.equals(obj);
		}
	}
	
	@Override
	protected Object clone() throws CloneNotSupportedException {
		Biblioteka b = new Biblioteka();
		for(Ksiazka k : biblioteka)
		{
			b.appendElement((Ksiazka) k.clone());
		}
		return b;
	}

}
